In non-volatile storing of information, there may occur data losses or even arbitrary changes of data. As the storing operation, usually consisting in clearing of the old information and writing of the new information, takes place over a relatively long period of time, disturbances may take place in particular, for example, in case of voltage dips in the supply of the memory chip, in the supply of bus lines or in the supply of the memory delivering the data to be stored.
If there are disturbances during the time necessary for non-volatile storing, the storage operation will not be performed correctly, and the result will be dependent on the manner in which the storage operations were carried out, or in other words, on the programming conditions and the type and time of the disturbances.
U.S. Pat. No. 4,922,456 relates to a method of reducing wearout in a non-volatile memory with double buffer. Before a write operation is performed, information to be stored is written to a double buffer in order to be able in case of a disturbance to reconstruct the steps to be performed during the write operation. A flag is set indicating that the double buffer is valid. The data from the double buffer are then written to the appropriate locations of a non-volatile memory. Finally, the flag is cleared so that the memory management system knows that it is no longer the data in the double buffer that are valid, but the data in the non-volatile memory.
Such methods, as disclosed in exemplary form in U.S. Pat. No. 4,922,456, make use of parallel memory locations in which the information is stored in alternating manner so that the initial state is retained at all times during the storing operation. The progress of the programming operation is maintained by means of flags. These flags always designate the memory location with the currently valid information. The setting on non-volatile flags in turn necessitates non-volatile programming operations that have to be secured against disturbances. The entire sequence thus is composed of quite a number of non-volatile storing operations necessitating considerable expenditure in time. Moreover, the point is reached relatively late at which the new information is present in such a form that it may be used, after elimination of a disturbance, as starting basis for a correction operation. The operation largely follows steps that have the sole function in case of a disturbance to rescue the old information. In addition thereto, the expenditure for programming the flags etc. must not be overlooked either.
EP 0 489 204 B1 discloses a data storage device, such as a disk drive or a tape drive, adapted to be reprogrammed with a new program code. At least part of the non-volatile memory of the data storage device is a flash memory, with the data management system being designed to first program a new program code in a RAM data buffer. Thereafter, it is determined whether the entire new program code has been received and stored in the data buffer. The flash memory is then cleared, whereupon the new program code is transferred from the data buffer to the flash memory.
This concept is advantageous as compared to storing using flags, in that such flags are no longer necessary. However, a problem resides in that the RAM buffer is a volatile memory so that, within the period of time in which the data are kept in the RAM buffer, a data loss may occur due to voltage variations or voltage dips at the RAM buffer. Thus, it is necessary according to EP 0 489 204 B1 before the step of transferring the new program code from the data buffer to the flash memory to carry out an additional examination step in order to find out whether or not the data have been corrupted during their time in the RAM buffer. This examination step or these examination steps in turn lead to increased expenditure and thus to an increased demand of time in storing information or, alternatively, to a RAM memory with particularly secured voltage supply, which in turn involves much time, is expensive and often is difficult to integrate in an overall system. In addition thereto, it is necessary to prepare examination algorithms for the data.